<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <div id="app">
    <com-parent></com-parent>
  </div>
  <script src="./vue.js"></script>
  <script>

    // 父组件
    Vue.component('com-parent', {
      template: `
      <div class="parent"> 
          父组件 {{msg}}
          <com-child :abc="msg"></com-child>
      </div>`,
      //1. :abc="msg" 在子组件上绑定一个自定义属性abc，这个属性的值是父组件msg的数据
      data () {
        return {
          msg: 'PARENT DATA'
        }
      }
    })

    // 子组件
    Vue.component('ComChild', {
      // 2. 选项props的作用，是接收父组件的传值，接收子组件绑定的自定义属性。
      // ['abc'] 接收abc属性的值，在当前vue实例上就拥有一个abc数据 `this.abc` 访问数据
      props: ['abc'],
      template: `<div class="child"> 子组件 {{abc}}  <button @click="abc=10">改abc</button></div>`
    })


    // 根实例
    new Vue({
      el: '#app'
    })
  </script>
</body>

</html>